using MediatR;
using S.O.ErrorCode;

namespace S.O.Api.Read.Application.Command.Medical
{
    /// <summary>
    /// 获取科室列表命令
    /// 用于挂号时的科室选择
    /// </summary>
    public class GetDepartmentListCommand : IRequest<APIResult<List<DepartmentDto>>>
    {
        /// <summary>
        /// 是否只返回启用的科室
        /// </summary>
        public bool OnlyEnabled { get; set; } = true;
    }
    
    /// <summary>
    /// 科室信息DTO
    /// </summary>
    public class DepartmentDto
    {
        /// <summary>
        /// 科室ID
        /// </summary>
        public long Id { get; set; }
        
        /// <summary>
        /// 科室编码
        /// </summary>
        public string DepartmentCode { get; set; } = string.Empty;
        
        /// <summary>
        /// 科室名称
        /// </summary>
        public string DepartmentName { get; set; } = string.Empty;
        
        /// <summary>
        /// 科室描述
        /// </summary>
        public string Description { get; set; } = string.Empty;
        
        /// <summary>
        /// 科室位置
        /// </summary>
        public string Location { get; set; } = string.Empty;
        
        /// <summary>
        /// 挂号费用
        /// </summary>
        public decimal RegistrationFee { get; set; }
        
        /// <summary>
        /// 科室负责人
        /// </summary>
        public string Director { get; set; } = string.Empty;
    }
}